package cn.lccabc.characterString.no0125;

/**
 * @program: leet-code
 * @description: 验证回文串
 * 给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。
 *
 * 说明：本题中，我们将空字符串定义为有效的回文串。
 *
 * 示例 1:
 *
 * 输入: "A man, a plan, a canal: Panama"
 * 输出: true
 * 示例 2:
 *
 * 输入: "race a car"
 * 输出: false
 *
 * @author: LiCC
 * @create: 2020-01-11 21:22
 */
public class Solution {

    public static boolean isPalindrome(String s) {
        int l = 0, r = s.length() - 1;
        while (l < r){
            while (l < r && !Character.isLetterOrDigit(s.charAt(l))) l++;
            while (l < r && !Character.isLetterOrDigit(s.charAt(r))) r--;
            if (!String.valueOf(Character.toLowerCase(s.charAt(l))).equals(String.valueOf(Character.toLowerCase(s.charAt(r))))){
                return false;
            }
            l++;
            r--;
        }
        return true;
    }

    public static void main(String[] args) {
        String str = "race a car";
        boolean result = isPalindrome(str);
        System.out.println(result);
    }
}
